home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Icons.h
-
- Contains: Icon Utilities Interfaces.
-
- Version: Technology: System 8
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __ICONS__
- #define __ICONS__
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
- #ifndef __QUICKDRAW__
- #include <Quickdraw.h>
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import on
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=mac68k
- #endif
-
-
- enum {
- /* The following are icons for which there are both icon suites and SICNs. */
- kGenericDocumentIconResource = -4000,
- kGenericStationeryIconResource = -3985,
- kGenericEditionFileIconResource = -3989,
- kGenericApplicationIconResource = -3996,
- kGenericDeskAccessoryIconResource = -3991,
- kGenericFolderIconResource = -3999,
- kPrivateFolderIconResource = -3994,
- kFloppyIconResource = -3998,
- kTrashIconResource = -3993,
- kGenericRAMDiskIconResource = -3988,
- kGenericCDROMIconResource = -3987, /* The following are icons for which there are SICNs only. */
- kDesktopIconResource = -3992,
- kOpenFolderIconResource = -3997,
- kGenericHardDiskIconResource = -3995,
- kGenericFileServerIconResource = -3972,
- kGenericSuitcaseIconResource = -3970,
- kGenericMoverObjectIconResource = -3969, /* The following are icons for which there are icon suites only. */
- kGenericPreferencesIconResource = -3971,
- kGenericQueryDocumentIconResource = -16506,
- kGenericExtensionIconResource = -16415,
- kSystemFolderIconResource = -3983,
- kAppleMenuFolderIconResource = -3982
- };
-
-
- enum {
- /* Obsolete. Use named constants defined above. */
- genericDocumentIconResource = kGenericDocumentIconResource,
- genericStationeryIconResource = kGenericStationeryIconResource,
- genericEditionFileIconResource = kGenericEditionFileIconResource,
- genericApplicationIconResource = kGenericApplicationIconResource,
- genericDeskAccessoryIconResource = kGenericDeskAccessoryIconResource,
- genericFolderIconResource = kGenericFolderIconResource,
- privateFolderIconResource = kPrivateFolderIconResource,
- floppyIconResource = kFloppyIconResource,
- trashIconResource = kPrivateFolderIconResource,
- genericRAMDiskIconResource = kGenericRAMDiskIconResource,
- genericCDROMIconResource = kGenericCDROMIconResource,
- desktopIconResource = kDesktopIconResource,
- openFolderIconResource = kOpenFolderIconResource,
- genericHardDiskIconResource = kGenericHardDiskIconResource,
- genericFileServerIconResource = kGenericFileServerIconResource,
- genericSuitcaseIconResource = kGenericSuitcaseIconResource,
- genericMoverObjectIconResource = kGenericMoverObjectIconResource,
- genericPreferencesIconResource = kGenericPreferencesIconResource,
- genericQueryDocumentIconResource = kGenericQueryDocumentIconResource,
- genericExtensionIconResource = kGenericExtensionIconResource,
- systemFolderIconResource = kSystemFolderIconResource,
- appleMenuFolderIconResource = kAppleMenuFolderIconResource
- };
-
-
- enum {
- kStartupFolderIconResource = -3981,
- kOwnedFolderIconResource = -3980,
- kDropFolderIconResource = -3979,
- kSharedFolderIconResource = -3978,
- kMountedFolderIconResource = -3977,
- kControlPanelFolderIconResource = -3976,
- kPrintMonitorFolderIconResource = -3975,
- kPreferencesFolderIconResource = -3974,
- kExtensionsFolderIconResource = -3973,
- kFontsFolderIconResource = -3968,
- kFullTrashIconResource = -3984
- };
-
-
- enum {
- /* Obsolete. Use named constants defined above. */
- startupFolderIconResource = kStartupFolderIconResource,
- ownedFolderIconResource = kOwnedFolderIconResource,
- dropFolderIconResource = kDropFolderIconResource,
- sharedFolderIconResource = kSharedFolderIconResource,
- mountedFolderIconResource = kMountedFolderIconResource,
- controlPanelFolderIconResource = kControlPanelFolderIconResource,
- printMonitorFolderIconResource = kPrintMonitorFolderIconResource,
- preferencesFolderIconResource = kPreferencesFolderIconResource,
- extensionsFolderIconResource = kExtensionsFolderIconResource,
- fontsFolderIconResource = kFontsFolderIconResource,
- fullTrashIconResource = kFullTrashIconResource
- };
-
-
- enum {
- kLarge1BitMask = 'ICN#',
- kLarge4BitData = 'icl4',
- kLarge8BitData = 'icl8',
- kSmall1BitMask = 'ics#',
- kSmall4BitData = 'ics4',
- kSmall8BitData = 'ics8',
- kMini1BitMask = 'icm#',
- kMini4BitData = 'icm4',
- kMini8BitData = 'icm8'
- };
-
-
- enum {
- /* Obsolete. Use names defined above. */
- large1BitMask = kLarge1BitMask,
- large4BitData = kLarge4BitData,
- large8BitData = kLarge8BitData,
- small1BitMask = kSmall1BitMask,
- small4BitData = kSmall4BitData,
- small8BitData = kSmall8BitData,
- mini1BitMask = kMini1BitMask,
- mini4BitData = kMini4BitData,
- mini8BitData = kMini8BitData
- };
-
- /* alignment type values */
-
- enum {
- kAlignNone = 0x00,
- kAlignVerticalCenter = 0x01,
- kAlignTop = 0x02,
- kAlignBottom = 0x03,
- kAlignHorizontalCenter = 0x04,
- kAlignAbsoluteCenter = kAlignVerticalCenter | kAlignHorizontalCenter,
- kAlignCenterTop = kAlignTop | kAlignHorizontalCenter,
- kAlignCenterBottom = kAlignBottom | kAlignHorizontalCenter,
- kAlignLeft = 0x08,
- kAlignCenterLeft = kAlignVerticalCenter | kAlignLeft,
- kAlignTopLeft = kAlignTop | kAlignLeft,
- kAlignBottomLeft = kAlignBottom | kAlignLeft,
- kAlignRight = 0x0C,
- kAlignCenterRight = kAlignVerticalCenter | kAlignRight,
- kAlignTopRight = kAlignTop | kAlignRight,
- kAlignBottomRight = kAlignBottom | kAlignRight
- };
-
-
- enum {
- /* Obsolete. Use names defined above. */
- atNone = kAlignNone,
- atVerticalCenter = kAlignVerticalCenter,
- atTop = kAlignTop,
- atBottom = kAlignBottom,
- atHorizontalCenter = kAlignHorizontalCenter,
- atAbsoluteCenter = kAlignAbsoluteCenter,
- atCenterTop = kAlignCenterTop,
- atCenterBottom = kAlignCenterBottom,
- atLeft = kAlignLeft,
- atCenterLeft = kAlignCenterLeft,
- atTopLeft = kAlignTopLeft,
- atBottomLeft = kAlignBottomLeft,
- atRight = kAlignRight,
- atCenterRight = kAlignCenterRight,
- atTopRight = kAlignTopRight,
- atBottomRight = kAlignBottomRight
- };
-
- typedef SInt16 IconAlignmentType;
- /* transform type values */
-
- enum {
- kTransformNone = 0x00,
- kTransformDisabled = 0x01,
- kTransformOffline = 0x02,
- kTransformOpen = 0x03,
- kTransformLabel1 = 0x0100,
- kTransformLabel2 = 0x0200,
- kTransformLabel3 = 0x0300,
- kTransformLabel4 = 0x0400,
- kTransformLabel5 = 0x0500,
- kTransformLabel6 = 0x0600,
- kTransformLabel7 = 0x0700,
- kTransformSelected = 0x4000,
- kTransformSelectedDisabled = kTransformSelected | kTransformDisabled,
- kTransformSelectedOffline = kTransformSelected | kTransformOffline,
- kTransformSelectedOpen = kTransformSelected | kTransformOpen
- };
-
-
- enum {
- /* Obsolete. Use names defined above. */
- ttNone = kTransformNone,
- ttDisabled = kTransformDisabled,
- ttOffline = kTransformOffline,
- ttOpen = kTransformOpen,
- ttLabel1 = kTransformLabel1,
- ttLabel2 = kTransformLabel2,
- ttLabel3 = kTransformLabel3,
- ttLabel4 = kTransformLabel4,
- ttLabel5 = kTransformLabel5,
- ttLabel6 = kTransformLabel6,
- ttLabel7 = kTransformLabel7,
- ttSelected = kTransformSelected,
- ttSelectedDisabled = kTransformSelectedDisabled,
- ttSelectedOffline = kTransformSelectedOffline,
- ttSelectedOpen = kTransformSelectedOpen
- };
-
- typedef SInt16 IconTransformType;
- /* Selector mask values */
-
- enum {
- kSelectorLarge1Bit = 0x00000001,
- kSelectorLarge4Bit = 0x00000002,
- kSelectorLarge8Bit = 0x00000004,
- kSelectorSmall1Bit = 0x00000100,
- kSelectorSmall4Bit = 0x00000200,
- kSelectorSmall8Bit = 0x00000400,
- kSelectorMini1Bit = 0x00010000,
- kSelectorMini4Bit = 0x00020000,
- kSelectorMini8Bit = 0x00040000,
- kSelectorAllLargeData = 0x000000FF,
- kSelectorAllSmallData = 0x0000FF00,
- kSelectorAllMiniData = 0x00FF0000,
- kSelectorAll1BitData = kSelectorLarge1Bit | kSelectorSmall1Bit | kSelectorMini1Bit,
- kSelectorAll4BitData = kSelectorLarge4Bit | kSelectorSmall4Bit | kSelectorMini4Bit,
- kSelectorAll8BitData = kSelectorLarge8Bit | kSelectorSmall8Bit | kSelectorMini8Bit,
- kSelectorAllAvailableData = 0xFFFFFFFF
- };
-
-
- enum {
- /* Obsolete. Use names defined above. */
- svLarge1Bit = kSelectorLarge1Bit,
- svLarge4Bit = kSelectorLarge4Bit,
- svLarge8Bit = kSelectorLarge8Bit,
- svSmall1Bit = kSelectorSmall1Bit,
- svSmall4Bit = kSelectorSmall4Bit,
- svSmall8Bit = kSelectorSmall8Bit,
- svMini1Bit = kSelectorMini1Bit,
- svMini4Bit = kSelectorMini4Bit,
- svMini8Bit = kSelectorMini8Bit,
- svAllLargeData = kSelectorAllLargeData,
- svAllSmallData = kSelectorAllSmallData,
- svAllMiniData = kSelectorAllMiniData,
- svAll1BitData = kSelectorAll1BitData,
- svAll4BitData = kSelectorAll4BitData,
- svAll8BitData = kSelectorAll8BitData,
- svAllAvailableData = kSelectorAllAvailableData
- };
-
- typedef UInt32 IconSelectorValue;
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- typedef pascal OSErr (*IconActionProcPtr)(ResType theType, Handle *theIcon, void *yourDataPtr);
-
- #if GENERATINGCFM
- typedef UniversalProcPtr IconActionUPP;
- #else
- typedef IconActionProcPtr IconActionUPP;
- #endif
-
- enum {
- uppIconActionProcInfo = kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle *)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *)))
- };
-
- #if GENERATINGCFM
- #define NewIconActionProc(userRoutine) \
- (IconActionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture())
- #else
- #define NewIconActionProc(userRoutine) \
- ((IconActionUPP) (userRoutine))
- #endif
-
- #if GENERATINGCFM
- #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr) \
- CallUniversalProc((UniversalProcPtr)(userRoutine), uppIconActionProcInfo, (theType), (theIcon), (yourDataPtr))
- #else
- #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr) \
- (*(userRoutine))((theType), (theIcon), (yourDataPtr))
- #endif
- typedef IconActionProcPtr IconAction;
- typedef pascal Handle (*IconGetterProcPtr)(ResType theType, void *yourDataPtr);
-
- #if GENERATINGCFM
- typedef UniversalProcPtr IconGetterUPP;
- #else
- typedef IconGetterProcPtr IconGetterUPP;
- #endif
-
- enum {
- uppIconGetterProcInfo = kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *)))
- };
-
- #if GENERATINGCFM
- #define NewIconGetterProc(userRoutine) \
- (IconGetterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture())
- #else
- #define NewIconGetterProc(userRoutine) \
- ((IconGetterUPP) (userRoutine))
- #endif
-
- #if GENERATINGCFM
- #define CallIconGetterProc(userRoutine, theType, yourDataPtr) \
- CallUniversalProc((UniversalProcPtr)(userRoutine), uppIconGetterProcInfo, (theType), (yourDataPtr))
- #else
- #define CallIconGetterProc(userRoutine, theType, yourDataPtr) \
- (*(userRoutine))((theType), (yourDataPtr))
- #endif
- typedef IconGetterProcPtr IconGetter;
- #if !OLDROUTINELOCATIONS
- struct CIcon {
- PixMap iconPMap; /*the icon's pixMap*/
- BitMap iconMask; /*the icon's mask*/
- BitMap iconBMap; /*the icon's bitMap*/
- Handle iconData; /*the icon's data*/
- SInt16 iconMaskData[1]; /*icon's mask and BitMap data*/
- };
- typedef struct CIcon CIcon;
-
- typedef CIcon *CIconPtr;
- typedef CIconPtr *CIconHandle;
- extern pascal CIconHandle GetCIcon(SInt16 iconID)
- ONEWORDINLINE(0xAA1E);
-
- extern pascal void PlotCIcon(const Rect *theRect, CIconHandle theIcon)
- ONEWORDINLINE(0xAA1F);
-
- extern pascal void DisposeCIcon(CIconHandle theIcon)
- ONEWORDINLINE(0xAA25);
-
- #endif
- extern pascal Handle GetIcon(SInt16 iconID)
- ONEWORDINLINE(0xA9BB);
-
- extern pascal void PlotIcon(const Rect *theRect, Handle theIcon)
- ONEWORDINLINE(0xA94B);
-
- extern pascal OSErr PlotIconID(const Rect *theRect, IconAlignmentType align, IconTransformType transform, SInt16 theResID)
- THREEWORDINLINE(0x303C, 0x0500, 0xABC9);
-
- extern pascal OSErr NewIconSuite(Handle *theIconSuite)
- THREEWORDINLINE(0x303C, 0x0207, 0xABC9);
-
- extern pascal OSErr AddIconToSuite(Handle theIconData, Handle theSuite, ResType theType)
- THREEWORDINLINE(0x303C, 0x0608, 0xABC9);
-
- extern pascal OSErr GetIconFromSuite(Handle *theIconData, Handle theSuite, ResType theType)
- THREEWORDINLINE(0x303C, 0x0609, 0xABC9);
-
- extern pascal OSErr ForEachIconDo(Handle theSuite, IconSelectorValue selector, IconActionUPP action, void *yourDataPtr)
- THREEWORDINLINE(0x303C, 0x080A, 0xABC9);
-
- extern pascal OSErr GetIconSuite(Handle *theIconSuite, SInt16 theResID, IconSelectorValue selector)
- THREEWORDINLINE(0x303C, 0x0501, 0xABC9);
-
- extern pascal OSErr DisposeIconSuite(Handle theIconSuite, Boolean disposeData)
- THREEWORDINLINE(0x303C, 0x0302, 0xABC9);
-
- extern pascal OSErr PlotIconSuite(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite)
- THREEWORDINLINE(0x303C, 0x0603, 0xABC9);
-
- extern pascal OSErr MakeIconCache(Handle *theHandle, IconGetterUPP makeIcon, void *yourDataPtr)
- THREEWORDINLINE(0x303C, 0x0604, 0xABC9);
-
- extern pascal OSErr LoadIconCache(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconCache)
- THREEWORDINLINE(0x303C, 0x0606, 0xABC9);
-
- extern pascal OSErr PlotIconMethod(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconGetterUPP theMethod, void *yourDataPtr)
- THREEWORDINLINE(0x303C, 0x0805, 0xABC9);
-
- extern pascal OSErr GetLabel(SInt16 labelNumber, RGBColor *labelColor, Str255 labelString)
- THREEWORDINLINE(0x303C, 0x050B, 0xABC9);
-
- extern pascal Boolean PtInIconID(Point testPt, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
- THREEWORDINLINE(0x303C, 0x060D, 0xABC9);
-
- extern pascal Boolean PtInIconSuite(Point testPt, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
- THREEWORDINLINE(0x303C, 0x070E, 0xABC9);
-
- extern pascal Boolean PtInIconMethod(Point testPt, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
- THREEWORDINLINE(0x303C, 0x090F, 0xABC9);
-
- extern pascal Boolean RectInIconID(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
- THREEWORDINLINE(0x303C, 0x0610, 0xABC9);
-
- extern pascal Boolean RectInIconSuite(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
- THREEWORDINLINE(0x303C, 0x0711, 0xABC9);
-
- extern pascal Boolean RectInIconMethod(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
- THREEWORDINLINE(0x303C, 0x0912, 0xABC9);
-
- extern pascal OSErr IconIDToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
- THREEWORDINLINE(0x303C, 0x0613, 0xABC9);
-
- extern pascal OSErr IconSuiteToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
- THREEWORDINLINE(0x303C, 0x0714, 0xABC9);
-
- extern pascal OSErr IconMethodToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
- THREEWORDINLINE(0x303C, 0x0915, 0xABC9);
-
- extern pascal OSErr SetSuiteLabel(Handle theSuite, SInt16 theLabel)
- THREEWORDINLINE(0x303C, 0x0316, 0xABC9);
-
- extern pascal SInt16 GetSuiteLabel(Handle theSuite)
- THREEWORDINLINE(0x303C, 0x0217, 0xABC9);
-
- extern pascal OSErr GetIconCacheData(Handle theCache, void **theData)
- THREEWORDINLINE(0x303C, 0x0419, 0xABC9);
-
- extern pascal OSErr SetIconCacheData(Handle theCache, void *theData)
- THREEWORDINLINE(0x303C, 0x041A, 0xABC9);
-
- extern pascal OSErr GetIconCacheProc(Handle theCache, IconGetterUPP *theProc)
- THREEWORDINLINE(0x303C, 0x041B, 0xABC9);
-
- extern pascal OSErr SetIconCacheProc(Handle theCache, IconGetterUPP theProc)
- THREEWORDINLINE(0x303C, 0x041C, 0xABC9);
-
- extern pascal OSErr PlotIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIcon)
- THREEWORDINLINE(0x303C, 0x061D, 0xABC9);
-
- extern pascal OSErr PlotSICNHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theSICN)
- THREEWORDINLINE(0x303C, 0x061E, 0xABC9);
-
- extern pascal OSErr PlotCIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, CIconHandle theCIcon)
- THREEWORDINLINE(0x303C, 0x061F, 0xABC9);
-
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=reset
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import off
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __ICONS__ */
-
-